// 封装成函数，哪个页面需要获取城市位置信息，就去调用这个函数
// 创建并导出获取定位城市的函数getCurrentcity
// 判断location中是否有该城市（因为返回时候要切换城市）
// 如果咩有，就使用首页中获取定位城市的代码来获取，并且存储到本地储存中，然后返回该城市数据
import axios from "axios";
import { BASE_URL } from './url'
 
export const getCurrentCity = () =>{
    const localCity = JSON.parse(localStorage.getItem('hkzf_city'))

    //如果咩有城市，就使用首页中获取定位城市的代码
    if(!localCity){
        return new Promise((resolve, reject) => {
            const curCity = new window.BMapGL.LocalCity();
            curCity.get(async res => {
               try{
                    console.log('当前城市信息', res);
                    const result = await axios.get(`${BASE_URL}/area/info?name=${res.name}`)
                    // result.data.body => { label: '上海} , value: '' }
                    //保存在本地存储中
                    localStorage.setItem('hkzf_city', JSON.stringify(result.data.body))
                    //返回城市数据
                    resolve(result.data.body)
                    //成功后，将其数据暴露出去
               }catch(e){
                   //获取定位城市失败
                reject(e)
               }
            })
        })
    }

    //如果有城市，直接返回本地存储中的城市数据
    //因为上面为了处理异步操作，使用了Promise，因此，为了该函数返回值的统一，此处，也应该使用Promis
    //因为此处的Promise不会失败，所以此处，只要返回一个成功的Promise就可以了
    return Promise.resolve(localCity)
}